﻿#pragma once
#include <sfse_common/Errors.h>

#include "ScaleformKeyCodes.h"

namespace Scaleform
{
    namespace GFx
    {
        class Event //: public NewOverrideBase<Stat_Default_Mem>;
        {
            enum EventType {
                Unknown,
                MouseMove,
                MouseDown,
                MouseUp,
                MouseWheel,
                KeyDown,
                KeyUp,
                SceneResize,
                SetFocus,
                KillFocus,
                TouchBegin,
                TouchEnd,
                TouchMove,
                TouchTap,
                GestureBegin,
                Gesture,
                GestureEnd,
                GestureSimple,
                GamePadAnalog,
                OrientationChanged,
                AppLifecycle,
                DoShowMouse,
                DoHideMouse,
                DoSetMouseCursor,
                EnableClipping,
                DisableClipping,
                Accelerometer,
                Geolocation,
                Status,
                Char,
                IME
            };
            
            Event(EventType eventType = Unknown);
            Event(EventType eventType, KeyModifiers keysState);

            EventType Type;
            u32 pad04;
            KeyModifiers Modifiers;
            u32 pad0C;
            u32 EventClassSize;
            u32 pad14;
        };
        STATIC_ASSERT(sizeof(Event) == 0x18);
    }
}
